package model

import "time"

// SysUser 用户信息表 表：sys_user
type SysUser struct {
	UserId        int64      `gorm:"primary_key;column:user_id"` // 用户ID
	DeptId        *int64     `gorm:"column:dept_id"`             // 部门ID
	UserName      *string    `gorm:"column:user_name"`           // 用户账号
	NickName      *string    `gorm:"column:nick_name"`           // 用户昵称
	UserType      *string    `gorm:"column:user_type"`           // 用户类型（00系统用户）
	Email         *string    `gorm:"column:email"`               // 用户邮箱
	PhoneNumber   *string    `gorm:"column:phonenumber"`         // 手机号码
	Sex           *string    `gorm:"column:sex"`                 // 用户性别（0男 1女 2未知）
	Avatar        *string    `gorm:"column:avatar"`              // 头像地址
	Password      string     `gorm:"column:password"`            // 密码
	Status        *string    `gorm:"column:status"`              // 账号状态（0正常 1停用）
	DelFlag       string     `gorm:"column:del_flag"`            // 删除标志（0代表存在 2代表删除）
	LoginIp       *string    `gorm:"column:login_ip"`            // 最后登录IP
	LoginDate     *time.Time `gorm:"column:login_date"`          // 最后登录时间
	PwdUpdateDate *time.Time `gorm:"column:pwd_update_date"`     // 密码最后更新时间
	CreateBy      *string    `gorm:"column:create_by"`           // 创建者
	CreateAt      *time.Time `gorm:"column:create_time"`         // 创建时间
	UpdateBy      *string    `gorm:"column:update_by"`           // 更新者
	UpdateAt      *time.Time `gorm:"column:update_time"`         // 更新时间
	Remark        *string    `gorm:"column:remark"`              // 备注
}

// TableName 表名
func (s SysUser) TableName() string {
	return "sys_user"
}

func (s *SysUser) IsAdmin() bool {
	return IsAdmin(&s.UserId)
}

// 判断是否是超级管理员
func IsAdmin(userId *int64) bool {
	if userId != nil && *userId == 1 {
		return true
	}
	return false
}
